#!/bin/bash

#====================================================================
# if...else...fi
# 使用[ ]包裹条件，如果不用中括号包裹，也可以使用test操作符代替，中括号是test操作符的别名
# 注意是以fi结束
# 参考：https://www.runoob.com/linux/linux-shell-process-control.html
#====================================================================

a=123
b=456

echo "a=$a, b=$b"

#单个if写法
#注意：条件语句写在中括号里，表达式两边要留空格
if [ $a -lt $b ] #then可换行写，也可以用;隔开，写在同一行
then
    echo 'a<b'
fi

if test $a -lt $b #中括号是test操作符的别名，所以test 和 [ ]可以换着使用
then
    echo 'a<b'
fi

#单个if写法，也可以全部写成一行，用;隔开
if [ $a -lt $b ]; then echo 'a<b'; fi

#if...else...fi写法
if [ $a -lt $b -o $a == $b ]; then
#if [[ $a -lt $b || $a == $b ]]; then #使用&&或||，注意多加一对中括号
    echo 'a<=b'
else
    echo 'a>b'
fi

#if...elif...else...fi写法
if [ $a -gt $b ]; then
    echo 'a>b'
elif [ $a -lt $b ]; then
    echo 'a<b'
else
    echo 'a==b'
fi

#case...esac
a=100
case $a in
    1)
        echo "a等于$a"
        ;; #相当于php中的break
    2)
        echo "a等于$a"
        ;;
    *) #相当于default    
        echo "a既不等于1，也不等于2，a=$a"
        ;;
esac

str="vsiryxm"
case $str in
    "ouyang"|"vsiryxm")
        echo "我是$str"
        ;; #相当于php中的break
    "simon")
        echo "我是$str"
        ;;
    *) #相当于default    
        echo "str既不等于ouyang，也不等于vsiryxm，str=$str"
        ;;
esac
